package ch09.demo.cn.cvs.controller;

import ch09.demo.cn.cvs.entity.SysUser;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Map;

@Controller
@RequestMapping(value = "/hello")
public class HelloController extends AbstractController {
    Logger logger=Logger.getLogger(HelloController.class);
    public ModelAndView hello(@RequestParam String realName) throws Exception{
        logger.info("你好【"+realName+"】欢迎来到Spring MVC课堂。");
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject("realName",realName);
        modelAndView.setViewName("hello");
        return modelAndView;
    }
    @Override
    protected ModelAndView handleRequestInternal(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) throws Exception {
        System.out.println("Spring MVC框架搭建成功。");
        return new ModelAndView("hello");
    }
//    @RequestMapping(value = "/hello")
//    public String hello(@RequestParam(required = false,value = "userName") String realName) throws Exception{
////        System.out.println("Spring MVC框架搭建成功。");
////        logger.info("我的第一个SpringMVC程序，运行成功啦！");
//        logger.info("你好"+realName+"欢迎来到Spring MVC课堂。");
//        //跳转到hello页面
//        return "hello";
//    }
    @RequestMapping("/hello2")
    public String hello2(Model model,@RequestParam String realName) throws Exception{
        logger.info("你好【"+realName+"】欢迎来到Spring MVC课堂。");
        model.addAttribute("realName",realName);
        model.addAttribute(realName);
        SysUser sysUser=new SysUser();
        sysUser.setRealName(realName);
        model.addAttribute("currentUser",sysUser);
        model.addAttribute(sysUser);
        return "hello";
    }
    public String hello3(Map<String,Object> map,@RequestParam String realName) throws Exception{
        logger.info("你好【"+realName+"】欢迎来到Spring MVC课堂。");
        map.put("realName",realName);
        return "hello";
    }
}
